package JaggSoft.Utilidades;

import java.util.Arrays;
import javax.swing.table.AbstractTableModel;

public class MyModeloTabla extends AbstractTableModel {
    private String[] nombre_columnas=null;
    private Object[][] datos=null;
    public MyModeloTabla(String[] columnas) {
        nombre_columnas=columnas;
        datos=new Object[0][columnas.length];
    }
    @Override
    public int getRowCount() {
        return datos.length;
    }
    @Override
    public int getColumnCount() {
        return nombre_columnas.length;
    }
    @Override
    public Object getValueAt(int fila, int columna) {
        return datos[fila][columna];
    }
    public boolean AgregarFila(Object[] nueva){
        if(nombre_columnas.length!=nueva.length) return false;
        Object tmp_data[][]=datos;
        datos=new Object[tmp_data.length+1][nombre_columnas.length];
        int i;
        for(i=0;i<tmp_data.length;i++)
            datos[i]=Arrays.copyOf(tmp_data[i],tmp_data[i].length);
        datos[i]=Arrays.copyOf(nueva,nueva.length);
        return true;
    }
    public void EliminarFilas(){
        datos=new Object[0][nombre_columnas.length];
        this.fireTableDataChanged();
    }
    public void EliminarFila(int fila){
        int n=0;
        Object tmp_data[][]=datos;
        datos=new Object[tmp_data.length-1][nombre_columnas.length];
        for(int i=0;i<tmp_data.length;i++)
            if(i!=fila)
                datos[n++]=Arrays.copyOf(tmp_data[i],tmp_data[i].length);
        this.fireTableDataChanged();
    }
    @Override
    public String getColumnName(int col){
        return nombre_columnas[col];
    }
    @Override
    public Class getColumnClass(int col){
        return getValueAt(0,col).getClass();
    }
    public Object[][] getDatos(){
        return this.datos;
    }
    public void setDatos(Object obj[][]){
        this.datos=obj;
    }
}